package plannegocio.web;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.catalina.Session;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import plannegocio.excepcion.DAOExcepcion;
import plannegocio.negocio.GestionForoDuda;
import plannegocio.negocio.GestionPersonas;
import plannegocio.negocio.GestionPlannegocios;
import plannegocio.modelo.*;

@Controller
public class ForoDudaController {

	// ***************
	// Mantenimiento *
	// ***************
	
	@RequestMapping(value = "/foroDuda")	
	protected ModelAndView foroduda(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		HttpSession sesion=request.getSession(true);
		Persona bean = (Persona) sesion.getAttribute("personalogueada");
		int emprendedorId=bean.getPersonaID();
		int planId = Integer.parseInt(request.getParameter("planId"));
		
		System.out.print("emprendedorId: " + emprendedorId + " y planId: " + planId);
		
		GestionForoDuda negocio = new GestionForoDuda();
		Collection<ForoDuda> lista = null;
		lista = negocio.listarForoDuda(planId,emprendedorId);
		
		sesion.setAttribute("planForo", planId);
		
		return new ModelAndView("foroDuda", "listaForo", lista);
		
	}
	
	@RequestMapping(value = "/listarForoDuda", method = RequestMethod.POST)
	protected ModelAndView listarForoDuda(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		 
		
		HttpSession sesion=request.getSession();
		int emprendedorId=(Integer)sesion.getAttribute("Idpersona");
		int planId= (Integer)request.getAttribute("planId");
		
		GestionForoDuda negocio = new GestionForoDuda();
	
		Collection<ForoDuda> lista = null;
		lista = negocio.listarForoDuda(planId,emprendedorId);
		return new ModelAndView("foroDuda", "listaForo", lista);
	}
	
	//,// method = RequestMethod.POST)	
	@RequestMapping(value = "/insertarPreguntaForoDuda")
	protected ModelAndView insertarPreguntaForoDuda(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		
		HttpSession sesion=request.getSession(true);
		Persona bean = (Persona) sesion.getAttribute("personalogueada");
		int emprendedorId=bean.getPersonaID();
		

		GestionForoDuda negocio = new GestionForoDuda();
		
		String pregunta =(String) request.getParameter("Comentario");
		int planId= Integer.parseInt(request.getParameter("planId"));
		
		ForoDuda BeanForoDuda = new ForoDuda();
		BeanForoDuda.setPregunta(pregunta);
		BeanForoDuda.setFec_envio(new Date());
			
		Emprendedor objemprendendor = new Emprendedor();
		objemprendendor.setPersonaID(bean.getPersonaID());
		
		PlanNegocio objPlan = new PlanNegocio();
		objPlan.setPlanID(planId);
		
		BeanForoDuda.setoEmprendedor(objemprendendor);
		BeanForoDuda.setoPlanNegocio(objPlan);
		
		ForoDuda BeanRetorno = new ForoDuda();
		BeanRetorno =negocio.insertarPreguntaForoDuda(BeanForoDuda);
		
		Collection<ForoDuda> lista = null;
		lista = negocio.listarForoDuda (planId,emprendedorId);
		return new ModelAndView("foroDuda", "listaForo", lista);
	}

	
	@RequestMapping(value = "/RespondePreguntaForoDuda", method = RequestMethod.POST)
	protected ModelAndView RespondePreguntaForoDuda(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		
		HttpSession sesion=request.getSession(true);
		Persona bean = (Persona) sesion.getAttribute("personalogueada");
		
		
		int planId= Integer.parseInt(request.getParameter("planId"));
		int sabioId=(Integer)bean.getPersonaID();
		int emprendedorId = Integer.parseInt(request.getParameter("emprendedorId"));
		int foroDudaId=Integer.parseInt(request.getParameter("foroDudaId"));
		
		GestionPersonas SrvPersona = new GestionPersonas();	
		GestionPlannegocios SrvPlanes = new GestionPlannegocios();
		GestionForoDuda negocio = new GestionForoDuda();
				
		ForoDuda BeanForoDuda = new ForoDuda();
		BeanForoDuda.setRespuesta(request.getParameter("Comentario"));
		BeanForoDuda.setFec_respuesta(new Date());
		BeanForoDuda.setoSabio(SrvPersona.obtener_sabio(sabioId));
		BeanForoDuda.setForoDudaId(foroDudaId);
		
		ForoDuda BeanRetorno = new ForoDuda();
		BeanRetorno =negocio.RespondePreguntaForoDuda(BeanForoDuda);
		
		Collection<ForoDuda> lista = null;
		lista = negocio.listarForoDuda(planId,emprendedorId);
		return new ModelAndView("foroDuda", "listaForo", lista);
	}

	

}